服務(wù)網(wǎng)格是指來自云托管應(yīng)用程序的軟件代碼在網(wǎng)絡(luò)服務(wù)器的不同級別以集成層編織在一起的方式。 云托管應(yīng)用程序代碼可以使用 API 構(gòu)建,而不是在 Web 服務(wù)器堆棧配置頂層的隔離運行時中運行,這些 API 有助于調(diào)用在操作系統(tǒng)、Web 服務(wù)器、網(wǎng)絡(luò)級別上可用的其他軟件驅(qū)動服務(wù),或 數(shù)據(jù)中心。服務(wù)網(wǎng)格通過擴展生產(chǎn)中基礎(chǔ)設(shè)施元素之間的互操作通信級別來增加軟件應(yīng)用程序的潛在功能。
服務(wù)網(wǎng)格通過正在運行的應(yīng)用程序之間的自動化、跨通道通信, 在彈性云 數(shù)據(jù)中心中的虛擬機上將數(shù)千個微服務(wù)編織在一起 。云編排、負載平衡、資源發(fā)現(xiàn)SDN 路由、API 通信、數(shù)據(jù)庫同步和腳本優(yōu)化應(yīng)用程序需要跨 數(shù)據(jù)中心操作的所有級別的專用服務(wù)到服務(wù)通信功能 。服務(wù)網(wǎng)格可用于一次跨數(shù)百萬個多租戶機架服務(wù)器的多層網(wǎng)絡(luò)架構(gòu)的更好的數(shù)據(jù)分析和流量指標。
服務(wù)網(wǎng)格的好處
提高互操作性:服務(wù)網(wǎng)格擴展了集成微服務(wù)環(huán)境的 SDN 路由特性的功能,以支持 Web、移動和 SaaS 應(yīng)用程序代碼。
增強的微服務(wù)發(fā)現(xiàn):服務(wù)網(wǎng)格 通過更好的微服務(wù)發(fā)現(xiàn)來改進網(wǎng)絡(luò)配置和管理。
網(wǎng)絡(luò)活動的詳細實時監(jiān)控和分析:服務(wù)網(wǎng)格可以訪問后端進程和 Web 服務(wù)器硬件,以對網(wǎng)絡(luò)活動進行更詳細的實時監(jiān)控和分析。
強大的 Web 和移動腳本自動化:開發(fā)人員可以通過 YAML 文件或?qū)嵱贸绦颍ㄈ?Vagrant、Jenkins、Puppet、Chef 等)編寫服務(wù)網(wǎng)格功能腳本,以大規(guī)模構(gòu)建強大的 Web 和移動腳本自動化。在企業(yè)生產(chǎn)中支持復(fù)雜的 SaaS 應(yīng)用程序需要這種類型的架構(gòu)。 服務(wù)網(wǎng)格為在云中同時運行的數(shù)千或數(shù)百萬個容器提供協(xié)調(diào) 。
服務(wù)網(wǎng)格如何工作?
服務(wù)網(wǎng)格通過安裝在彈性 Web 服務(wù)器網(wǎng)絡(luò)中的每個 VM 實例或節(jié)點上的發(fā)現(xiàn)和路由應(yīng)用程序工作,以通過 IP 地址注冊正在運行的微服務(wù)。中央注冊中心用于配置、管理和管理網(wǎng)絡(luò)上所有同時運行的微服務(wù)。在 Web 服務(wù)器、數(shù)據(jù)中心或應(yīng)用程序的各個層運行的并行應(yīng)用程序可以引用服務(wù)網(wǎng)格,以通過數(shù)據(jù)分析和網(wǎng)絡(luò)監(jiān)控擴展互操作功能。這導(dǎo)致 IP 路由、SDN 定義、防火墻設(shè)置、過濾器、規(guī)則和云負載平衡級別的數(shù)據(jù)中心自動化程度提高。
API 連接可以參考服務(wù)網(wǎng)格,以定義在何處發(fā)現(xiàn)正在運行的應(yīng)用程序和微服務(wù)功能以進行數(shù)據(jù)傳輸或所需的處理活動。使用Kubernetes自動擴展的彈性 Web 服務(wù)器平臺 使用 Istio 作為微服務(wù)發(fā)現(xiàn)的中央注冊表和配置管理實用程序。AWS EC2 和 Kubernetes 等彈性 Web 服務(wù)器平臺利用服務(wù)網(wǎng)格在同時運行時管理多個云應(yīng)用程序副本,同時同步對主數(shù)據(jù)庫和存儲信息的更改。服務(wù)網(wǎng)格允許應(yīng)用層通過 API 與 Web 服務(wù)器、互聯(lián)網(wǎng)和數(shù)據(jù)中心網(wǎng)絡(luò)資源進行通信,反之亦然,具體取決于微服務(wù)或代碼庫的要求。
服務(wù)網(wǎng)格架構(gòu)
服務(wù)網(wǎng)格基于安裝在云數(shù)據(jù)中心的虛擬機或容器上的抽象層。代碼安裝在與運行數(shù)據(jù)中心編排的中央管理軟件實例通信的每個 VM 或節(jié)點上。VMware NSX等服務(wù)網(wǎng)格解決方案 Istio 依靠 Envoy 在節(jié)點級別創(chuàng)建數(shù)據(jù)平面。Envoy 為每個 VM 或節(jié)點管理與正在運行的微服務(wù)、許可 IP 地址、HTTPS 加密、活動數(shù)據(jù)庫格式等相關(guān)的信息。對于 NSX,這包括在管理程序級別的分布式防火墻集成。在彈性云網(wǎng)絡(luò)中,每個虛擬機或節(jié)點的數(shù)據(jù)平面信息用于負載均衡。API 連接依賴于服務(wù)網(wǎng)格架構(gòu)來滿足應(yīng)用程序間的路由要求。服務(wù)網(wǎng)格第 7 層的遙測包括 DNS、HTTP/S、SMTP、POP3、FTP 等。
服務(wù)網(wǎng)格實現(xiàn)
服務(wù)網(wǎng)格實現(xiàn)包括跨 SDN、IP 地址、微服務(wù)和 Web/移動應(yīng)用程序的 API 資源的負載平衡和服務(wù)發(fā)現(xiàn)。服務(wù)網(wǎng)格管理彈性 Web 服務(wù)器架構(gòu)中跨硬件的 Web 服務(wù)器后端連接的通信、同步和加密。在云應(yīng)用程序中,腳本、數(shù)據(jù)庫和靜態(tài) Web 文件通常在不同的硬件上分離,然后在 Web 瀏覽器的最終頁面上組裝。
使用代碼中的第三方 API,硬件、腳本、數(shù)據(jù)庫和文件之間的 SDN 路由變得更加復(fù)雜。當(dāng)所有這些都必須為每個頁面加載跨資源組裝時,服務(wù)網(wǎng)格在彈性 Web 服務(wù)器框架中集成、同步和標準化跨 VM 的操作。創(chuàng)建服務(wù)網(wǎng)格是為了滿足數(shù)據(jù)中心中沒有其他軟件提供的需求。它還包括來自網(wǎng)絡(luò)流量連接的數(shù)據(jù)分析和用戶指標。
開源服務(wù)網(wǎng)格
Istio 是目前最先進的開源服務(wù)網(wǎng)格項目,Envoy 用于與跨節(jié)點管理數(shù)據(jù)平面相關(guān)的核心功能。Istio 最初是作為云原生計算基金會 (CNCF) 的一部分開發(fā)的,并且在 VMware NSX Service Mesh 和 Enterprise PKS 平臺中工作。PKS 是 VMware 的 Kubernetes 發(fā)行版,它通過容器編排云 Web 服務(wù)器。PKS 可用作公共和 私有云的自托管包 要求或作為完全托管的容器即服務(wù) (CaaS) 產(chǎn)品。Istio 用于 Kubernetes 中的微服務(wù)通信,具有復(fù)雜的 IP 地址路由功能和加密,用于大規(guī)模企業(yè)數(shù)據(jù)中心的彈性 Web 服務(wù)器編排。Linkerd、Conduit、Aspen 和 Consul 是作為服務(wù)網(wǎng)格框架組件開發(fā)的其他重要開源項目。
彈性服務(wù)網(wǎng)格
需要彈性服務(wù)網(wǎng)格來同步 AWS EC2 或 Kubernetes 等云托管框架中的數(shù)據(jù)庫和網(wǎng)站文件。服務(wù)網(wǎng)格控制 Web 服務(wù)器后端中 VM 之間的路由,以滿足軟件應(yīng)用程序支持中的 API 和 SDN 要求。當(dāng)服務(wù)網(wǎng)格還用于彈性 Web 服務(wù)器網(wǎng)絡(luò)中的發(fā)現(xiàn)和負載平衡時,管理員可以自動分配數(shù)據(jù)中心資源,以匹配生產(chǎn)中用戶流量的需求。Web 服務(wù)器可以配置為在不再需要時自動啟動或終止,以更有效地使用云硬件資源。將實時監(jiān)控和分析功能嵌入到 VM 或節(jié)點級別的服務(wù)網(wǎng)格中的能力為軟件開發(fā)人員、程序員、
為什么微服務(wù)架構(gòu)需要服務(wù)網(wǎng)格
公共云可能包含數(shù)百萬個 跨容器或虛擬機同時運行的微服務(wù),這些微服務(wù)通過隔離的運行時并行支持不同的應(yīng)用程序和數(shù)據(jù)庫。基于虛擬化的多租戶環(huán)境需要更好的方法來發(fā)現(xiàn)和注冊微服務(wù),以便每個微服務(wù)的獨特功能可以由應(yīng)用程序集成或使用 API 共享給其他設(shè)備。許多微服務(wù)格式并不是專門為彈性 Web 服務(wù)器平臺設(shè)計的,需要服務(wù)網(wǎng)格來管理容器中的操作。服務(wù)網(wǎng)格通過 SDN 提供細粒度的路由和加密功能,允許不同的 API 在 Web 服務(wù)器、端點和其他設(shè)備上運行的代碼進程之間進行通信。